package com.ruoyi.common.core.domain.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 区域业务配置对象 config_region
 * 
 * @author ruoyi
 * @date 2024-10-22
 */
public class ConfigRegion extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 区域id */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 城市编码 */
    @Excel(name = "城市编码")
    private String cityCode;

    /** （个体）接单量限制 */
    @Excel(name = "", readConverterExp = "个=体")
    private Long staffReceiveOrderMax;

    /** （企业）接单量限制值 */
    @Excel(name = "", readConverterExp = "企=业")
    private Long institutionReceiveOrderMax;

    /** （个体）服务范围半径 */
    @Excel(name = "", readConverterExp = "个=体")
    private Long staffServeRadius;

    /** （企业）服务范围半径 */
    @Excel(name = "", readConverterExp = "企=业")
    private Long institutionServeRadius;

    /** 分流间隔（单位分钟），即下单时间与服务预计开始时间的间隔 */
    @Excel(name = "分流间隔", readConverterExp = "单=位分钟")
    private Long diversionInterval;

    /** 抢单超时时间间隔（单位分钟），从支付成功进入抢单后超过当前时间抢单派单同步进行 */
    @Excel(name = "抢单超时时间间隔", readConverterExp = "单=位分钟")
    private Long seizeTimeoutInterval;

    /** 派单策略，1：距离优先策略，2：评分优先策略，3：接单量优先策略 */
    @Excel(name = "派单策略，1：距离优先策略，2：评分优先策略，3：接单量优先策略")
    private Long dispatchStrategy;

    /** 派单每轮时间间隔 */
    @Excel(name = "派单每轮时间间隔")
    private Long dispatchPerRoundInterval;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCityCode(String cityCode) 
    {
        this.cityCode = cityCode;
    }

    public String getCityCode() 
    {
        return cityCode;
    }
    public void setStaffReceiveOrderMax(Long staffReceiveOrderMax) 
    {
        this.staffReceiveOrderMax = staffReceiveOrderMax;
    }

    public Long getStaffReceiveOrderMax() 
    {
        return staffReceiveOrderMax;
    }
    public void setInstitutionReceiveOrderMax(Long institutionReceiveOrderMax) 
    {
        this.institutionReceiveOrderMax = institutionReceiveOrderMax;
    }

    public Long getInstitutionReceiveOrderMax() 
    {
        return institutionReceiveOrderMax;
    }
    public void setStaffServeRadius(Long staffServeRadius) 
    {
        this.staffServeRadius = staffServeRadius;
    }

    public Long getStaffServeRadius() 
    {
        return staffServeRadius;
    }
    public void setInstitutionServeRadius(Long institutionServeRadius) 
    {
        this.institutionServeRadius = institutionServeRadius;
    }

    public Long getInstitutionServeRadius() 
    {
        return institutionServeRadius;
    }
    public void setDiversionInterval(Long diversionInterval) 
    {
        this.diversionInterval = diversionInterval;
    }

    public Long getDiversionInterval() 
    {
        return diversionInterval;
    }
    public void setSeizeTimeoutInterval(Long seizeTimeoutInterval) 
    {
        this.seizeTimeoutInterval = seizeTimeoutInterval;
    }

    public Long getSeizeTimeoutInterval() 
    {
        return seizeTimeoutInterval;
    }
    public void setDispatchStrategy(Long dispatchStrategy) 
    {
        this.dispatchStrategy = dispatchStrategy;
    }

    public Long getDispatchStrategy() 
    {
        return dispatchStrategy;
    }
    public void setDispatchPerRoundInterval(Long dispatchPerRoundInterval) 
    {
        this.dispatchPerRoundInterval = dispatchPerRoundInterval;
    }

    public Long getDispatchPerRoundInterval() 
    {
        return dispatchPerRoundInterval;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("cityCode", getCityCode())
            .append("staffReceiveOrderMax", getStaffReceiveOrderMax())
            .append("institutionReceiveOrderMax", getInstitutionReceiveOrderMax())
            .append("staffServeRadius", getStaffServeRadius())
            .append("institutionServeRadius", getInstitutionServeRadius())
            .append("diversionInterval", getDiversionInterval())
            .append("seizeTimeoutInterval", getSeizeTimeoutInterval())
            .append("dispatchStrategy", getDispatchStrategy())
            .append("dispatchPerRoundInterval", getDispatchPerRoundInterval())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
